Methods and apparatus for gaming data downloading

ABSTRACT

A gaming apparatus may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The gaming apparatus may be disposed in a casino. The controller may comprise a processor and a memory, and may be programmed to receive data representing server information regarding casino gaming servers, to organize the casino gaming servers according to the server information data, to select a casino gaming server according to the organization of the casino gaming servers or the server information data, to receive gaming data from the selected casino gaming server, and to determine a value payout associated with an outcome of a game.

BACKGROUND

This patent is directed to a casino gaming apparatus, which could be either an individual gaming unit or a casino gaming system having a plurality of gaming units, each gaming unit capable of finding and selecting a gaming server for downloading gaming data.

Conventional casino gaming units often received gaming data, such as configuration data, game updates and gaming routines using an offline system such as reading the gaming data from a magnetic or optical disc, or required mechanical alteration to facilitate new configurations, games, etc. While the gaming units were sometimes connected to a network, the gaming units played only the games that were stored in the memory of the gaming unit. Some gaming units could initiate interactive gameplay with other gaming units on the network. The gaming unit allowed a player to wager on, control and view a game stored on a memory of that particular gaming unit.

U.S. patent application Ser. No. 09/586,522 entitled “Downloadable Software,” which was filed on Jun. 2, 1999, generally describes a gaming machine network that allows a central system to accept a copy of a software upgrade. The software upgrade may be simultaneously downloaded to a plurality of networked devices, without having to mechanically alter each device receiving the upgrade.

U.S. Patent Publication No. 2003/0064771 A1 described a network connecting a plurality of gaming machines to a central computer. The video screen content of the gaming machines was reconfigurable. Video screen content was downloaded over the network, allowing games, pay tables and artwork to be changed.

SUMMARY OF THE INVENTION

In one aspect, the invention is directed to a gaming system that may comprise a master gaming server, a gaming apparatus disposed in a casino, and a plurality of gaming servers interconnected with the gaming apparatus and the master gaming server. The gaming apparatus may comprise a display unit, a value input device and a gaming apparatus controller comprising a processor and a memory operatively coupled to said processor. The display unit may be capable of generating video images.

The gaming apparatus controller may be programmed to receive gaming server identification data from the master gaming server. The gaming server identification data may represent the identity of each gaming server. The gaming apparatus controller may also be programmed to communicate a network message to gaming server. The network message may comprise a type identifier and data unique to the network message. The gaming apparatus controller may further be programmed to receive a response to the network message from one or more of the gaming servers, determine server information data regarding each of the responding gaming servers based on the response, select a gaming server according to the server information data, communicate a selection message to the selected gaming server, and receive gaming data from the selected gaming server in response to said selection message. The gaming apparatus controller may also be programmed to cause a video image to be generated on the display unit. The video image may represent a game, and the controller may be programmed to determine a value payout associated with an outcome of the game. The gaming apparatus controller may be programmed to receive server information data from said master gaming server. The server information data determined at least in part from the response may comprise a data transfer rate, responsiveness, identification or load.

The gaming apparatus controller may be programmed to record a first time when each network message is communicated to each of the gaming servers, record a second time when each of the responses is received, and determine the server information data based on the first and second times.

Each gaming server may comprise a gaming server controller comprising a processor and a memory operatively coupled to the processor. The gaming server controller may be programmed to receive the network message from the gaming apparatus controller, communicate a response to the network message to the gaming apparatus controller if the network message is received, receive a selection message from the gaming apparatus controller, and communicate the gaming data to the gaming apparatus controller if the gaming server controller receives the selection message.

The gaming system may also comprise a network computer interconnected with the gaming apparatus, the master gaming server and the plurality of gaming servers. The gaming apparatus controller may be programmed to request a network identification from the network computer using data identifying the gaming apparatus, and receive a network identification from the network computer if the gaming apparatus identification is valid. The gaming server controller may be programmed to determine if the network identification is valid, and provide the gaming data if the network identification is valid.

In another aspect, the invention is directed to gaming apparatus that may comprise a display unit, a value input device, and a controller operatively coupled to the display unit and the value input device. The apparatus may be disposed in a casino. The controller may comprise a processor and a memory, and may be programmed to receive data representing server information regarding casino gaming servers, to organize the casino gaming servers according to the server information data, to select a casino gaming server according to the organization of the casino gaming servers or the server information data, to receive gaming data from the selected casino gaming server, cause the display unit to generate a game display relating to poker, blackjack, slots, keno or bingo, and to determine a value payout associated with an outcome of a game. The display unit may comprise a video display unit capable of generating video images, and the controller may be programmed to cause a video image to be displayed. The display unit may also comprise a mechanical slot machine reel.

The video image may represent one of the following games: video poker, video blackjack, video slots, video keno and video bingo, in which case the video image may comprise an image of at least five playing cards if the game comprises video poker; the video image may comprise an image of a plurality of simulated slot machine reels if the game comprises video slots; the video image may comprise an image of a plurality of playing cards if the game comprises video blackjack; the video image may comprise an image of a plurality of keno numbers if the game comprises video keno, and the video image may comprise an image of a bingo grid if the game comprises video bingo.

The controller may be programmed to cause the display unit to generate a display relating to one or more of the casino gaming servers and to allow a person to select one of the casino gaming servers. The display may also relate to server information data for each of the casino gaming servers. The controller may also be programmed to automatically select a casino gaming server based on the server information data. The server information data may comprise a data transfer rate, responsiveness, identification, load, geographic location, network subnet data, description, available gaming data and gaming data size. The controller may be programmed to discard a casino gaming server as an option for selection based on a threshold value relating to data transfer rate, responsiveness, load, geographic proximity, network subnet data, available gaming data and/or gaming data size. The controller may further be programmed to cause the display unit to generate the game display from the gaming data. The gaming data may relate to poker, blackjack, slots, keno, bingo, a new game, a software update and configuration data.

Several gaming apparatuses may be interconnected to form a network of gaming apparatuses. A gaming system may comprise the network of gaming apparatuses, and may further comprise the plurality of casino gaming servers and a master gaming server. The controller may be programmed to communicate with the master gaming server. The gaming system may also comprise a network server. The controller may be programmed to provide the network server with a gaming apparatus identification and data to authenticate the gaming apparatus identification, to receive a network identification from the network server if the network server accepts the gaming apparatus identification and the authentication data, and to communicate with the master gaming server using the network identification. The controller may also be programmed to receive network server authentication data from the network server, determine if the network server authentication data is authentic, and accept the network identification if the network server authentication data is authentic. One of the gaming apparatuses may be a master gaming server, and the controller of that gaming apparatus may be programmed to provide a list of the casino gaming servers to the other gaming apparatuses. One of the gaming apparatuses may also be a casino gaming server, and the controller of that gaming apparatus may be programmed to provide gaming data to the other gaming apparatuses. The gaming apparatuses may be interconnected via the Internet.

In a further aspect, the invention is directed to a gaming method for downloading gaming data from a casino gaming server to a gaming apparatus disposed in a casino. The method may comprise receiving data representing server information regarding casino gaming servers, organizing the casino gaming servers according to the server information data, selecting a casino gaming server according to the organization of the casino gaming servers or the server information data, receiving gaming data from the selected casino gaming server, causing a game display to be generated, and determining a value payout associated with an outcome of the game. The games may comprise poker, blackjack, slots, keno or bingo. The method may also comprise causing a display relating to the casino gaming servers to be generated, and allowing a person to select one of the casino gaming servers. Selecting a casino gaming server may be done automatically, and causing a game display to be generated may comprise displaying a game from the gaming data. Selecting a casino gaming server may be based on a data transfer rate, responsiveness, identification, load, geographic location, network subnet data, description, available gaming data and gaming data size.

In yet another aspect, the invention is directed to a memory that may comprise a computer program that may be capable of being used in connection with a gaming apparatus disposed in a casino. The memory may comprise a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to receive data representing server information regarding casino gaming servers; a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to organize the plurality of casino gaming servers according to the server information, a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to select a casino gaming server according to the organization of the casino gaming servers or the server information data; a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to receive gaming data from the selected casino gaming server; a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to cause a game display representing a game to be generated; a memory portion physically configured in accordance with computer program instructions that may cause the gaming apparatus to determine a value payout associated with an outcome of the game. The game may be poker, blackjack, slots, keno or bingo.

Additional aspects of the invention are defined by the claims of this patent.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an embodiment of a gaming system in accordance with the invention;

FIG. 2 is a block diagram of an embodiment of a network shown schematically in FIG. 1;

FIG. 3 is a perspective view of an embodiment of one of the gaming units shown schematically in FIG. 1;

FIG. 3A illustrates an embodiment of a control panel for a gaming unit;

FIG. 4 is a block diagram of the electronic components of the gaming unit of FIG. 3;

FIG. 5 is a flowchart of an embodiment of a network communication routine that may be performed during operation of one or more of the gaming units;

FIG. 6 is a flowchart of an alternative embodiment of a network communication routine that may be performed during operation of one or more of the gaming units;

FIG. 7 is a flowchart of an embodiment of an authentication routine that may be performed during operation of one or more of the network computers;

FIG. 8 is a flowchart of an embodiment of a master gaming server communication routine that may be performed during operation of one or more of the gaming units;

FIG. 9 is a flowchart of an embodiment of a gaming server communication routine that may be performed during operation of one or more of the gaming units;

FIG. 10 is a flowchart of an alternative embodiment of a gaming server communication routine that may be performed during operation of one or more of the gaming units;

FIG. 11 is an illustration of an embodiment of a visual display that may be displayed during performance of the gaming server communication routine of FIG. 10;

FIG. 12 is a flowchart of an embodiment of a status check routine that may be performed during operation of one or more of the gaming units;

FIG. 13 is a flowchart of an embodiment of a main routine that may be performed during operation of one or more of the gaming servers;

FIG. 14 is a flowchart of an embodiment of a main routine that may be performed during operation of one or more of the gaming units;

FIG. 15 is a flowchart of an alternative embodiment of a main routine that may be performed during operation of one or more of the gaming units;

FIG. 16 is an illustration of an embodiment of a visual display that may be displayed during performance of the video poker routine of FIG. 18;

FIG. 17 is an illustration of an embodiment of a visual display that may be displayed during performance of the video blackjack routine of FIG. 19;

FIG. 18 is a flowchart of an embodiment of a video poker routine that may be performed by one or more of the gaming units;

FIG. 19 is a flowchart of an embodiment of a video blackjack routine that may be performed by one or more of the gaming units;

FIG. 20 is an illustration of an embodiment of a visual display that may be displayed during performance of the slots routine of FIG. 22;

FIG. 21 is an illustration of an embodiment of a visual display that may be displayed during performance of the video keno routine of FIG. 23;

FIG. 22 is a flowchart of an embodiment of a slots routine that may be performed by one or more of the gaming units;

FIG. 23 is a flowchart of an embodiment of a video keno routine that may be performed by one or more of the gaming units;

FIG. 24 is an illustration of an embodiment of a visual display that may be displayed during performance of the video bingo routine of FIG. 25; and

FIG. 25 is a flowchart of an embodiment of a video bingo routine that may be performed by one or more of the gaming units.

DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS

Although the following text sets forth a detailed description of numerous different embodiments of the invention, it should be understood that the legal scope of the invention is defined by the words of the claims set forth at the end of this patent. The detailed description is to be construed as exemplary only and does not describe every possible embodiment of the invention since describing every possible embodiment would be impractical, if not impossible. Numerous alternative embodiments could be implemented, using either current technology or technology developed after the filing date of this patent, which would still fall within the scope of the claims defining the invention.

It should also be understood that, unless a term is expressly defined in this patent using the sentence “As used herein, the term ‘______’ is hereby defined to mean . . . ” or a similar sentence, there is no intent to limit the meaning of that term, either expressly or by implication, beyond its plain or ordinary meaning, and such term should not be interpreted to be limited in scope based on any statement made in any section of this patent (other than the language of the claims). To the extent that any term recited in the claims at the end of this patent is referred to in this patent in a manner consistent with a single meaning, that is done for sake of clarity only so as to not confuse the reader, and it is not intended that such claim term be limited, by implication or otherwise, to that single meaning. Finally, unless a claim element is defined by reciting the word “means” and a function without the recital of any structure, it is not intended that the scope of any claim element be interpreted based on the application of 35 U.S.C. §112, sixth paragraph.

FIG. 1 illustrates one possible embodiment of a casino gaming system 10 in accordance with the invention. Referring to FIG. 1, the casino gaming system 10 may include a first group or network 12 of casino gaming units 20 operatively coupled to a network computer 22 and a master gaming server 28 via a network data link or bus 24. The casino gaming system 10 may include a second group or network 26 of casino gaming units 30 and a master gaming server 36 operatively coupled to a network computer 32 via a network data link or bus 34. The first and second gaming networks 12, 26 may be operatively coupled to each other via a network 40, which may comprise, for example, the Internet, a wide area network (WAN), or a local area network (LAN) via a first network link 42 and a second network link 44. In one example, the first and second networks 12, 26 and/or the network 40 may be network subnets of a larger network.

The first network 12 of gaming units 20 may be provided in a first casino, and the second network 26 of gaming units 30 may be provided in a second casino located in a separate geographic location than the first casino. For example, the two casinos may be located in different areas of the same city, or they may be located in different states.

The network computer 22 may be a server computer and may be used to accumulate and analyze data relating to the operation of the gaming units 20. For example, the network computer 22 may continuously receive data from each of the gaming units 20 indicative of the dollar amount and number of wagers being made on each of the gaming units 20, data indicative of how much each of the gaming units 20 is paying out in winnings, data regarding the identity and gaming habits of players playing each of the gaming units 20, etc.

The network computer 22 may further be used to provide a gaming unit 20 with a unique network identification for network communication, configure the gaming unit 20 for network communication and provide the gaming unit 20 with information about the networks 12, 26, 40 including the other gaming units 20, the master gaming server 28, etc. The unique network identification may be an Internet Protocol (IP) address, Intranet address, or any other form of identification to uniquely designate a gaming unit 20 from among other gaming units 20, 30, computers, servers or devices communicating on the network 12. The unique network identification may be provided when the gaming unit 20 connects to the network 12 to communicate with other devices on the network, or a device on another network 26, 40. The network computer 32 may be a server computer and may be used to perform the same or different functions in relation to the gaming units 30 as the network computer 22 described above. In some cases, the network computers 22, 32 may provide functions, such as providing a unique network identification, to gaming units 20, 30 on other networks. For example, the network computer 32 may provide an IP address to a gaming unit 20 on the first network 12, and the network computer 22 may provide an IP address to a gaming unit 30 on the second network 26.

The master gaming servers 28, 36 may also be server computers and may be used to provide a gaming unit 20, 30 with information regarding gaming servers on the network 40, including gaming servers (not shown) that may be on the first and second networks 12, 26. In one example, the master gaming server 28 and the network computer 22 may be embodied in the same hardware. In another example, a gaming unit 20, 30 may serve as a master gaming server 28, 36. Each master gaming server 28, 36 may periodically query each gaming server (and gaming unit 20, 30 if provided as gaming servers) or otherwise receive information from each gaming server to ascertain what gaming servers are communicating on the network, including information about each gaming server such as geographic location, description, network identification, network subnet data, and gaming data that is or may be made available to the gaming units 20, 30. The network subnet data may include information about the network subnet, including geographic location, speed, etc. or may simply be a network subnet identification that is associated with the information about the network subnet. The gaming server information may include a description of the gaming data, the size of the file(s), restrictions on use (e.g., the gaming data is available to gaming units 20, but not gaming units 30), etc. Each master gaming server 28, 36 may be dedicated to a particular gaming unit or group of gaming units 20, 30 or configurable to allow some or all of the gaming units 20, 30 to communicate with the master gaming server 28, 36.

Although each network 12, 26 is shown to include one network computer 22, 32, one master gaming server 28, 36 and three gaming units 20, 30, it should be understood that different numbers of computers and gaming units may be utilized. For example, the network 12 may include a plurality of network computers 22, a plurality of master gaming servers 28 and tens or hundreds of gaming units 20, all of which may be interconnected via the data link 24. The data link 24 may be provided as a dedicated hardwired link or a wireless link. Although the data link 24 is shown as a single data link 24, the data link 24 may comprise multiple data links.

FIG. 2 illustrates one possible embodiment of a network 40 operatively coupled to the first and second networks 20, 30 via data links 42, 44. The network 40 may include a plurality of network computers 46 and casino gaming server computers 48, each of which may be operatively interconnected via data links or busses 47, 49. Where the network 40 comprises the Internet, data communication may take place over the network links 42, 44 via an Internet communication protocol such as Transmission Control Protocol/Internet Protocol (TCP/IP). The network 40 may further include one or more master gaming servers (not shown) similar to those described above. The network computers 46 may be similar to the network computers 22, 32. For example, the network computers 46 may be server computers and may be used to perform the same or different functions in relation to the gaming units 20, 30 as the network computers 22, 32 described above, including providing a unique network identification to gaming units 20, 30.

The gaming servers 48 may be server computers in a casino and may be used to provide the gaming units 20, 30 with gaming data. The gaming data may be any data that may be required by a gaming unit 20, 30 for its operation. The gaming data may include software such as source code for a program to be executed by a controller, operating code for a controller, machine code, video data, software updates, configuration data, etc. A new program may be any new routine that may be executed by the controller such as a new game routine, a new video display routine, a new attraction routine, a new theme, etc. and may further include all software that may be required to execute the program. For example, a new game routine may require new source code to execute the game, new video display software to display to a player during execution of the game, new payout tables, new random number generators, new operating code for the controller to send and receive signals from a control panel, etc. Software updates may relate to updates to existing games, video displays, attraction routines, themes, pay tables, operating code, or any other software already stored in a memory of the controller. The updates may relate to new versions of an existing game, additional subroutines to add to existing routines, software patches to repair errors in existing software, updated payout tables, updates to video images, etc. The configuration data may relate to configuration software for the gaming unit controller, the gaming unit display, the payout tables, network communication, or any other aspect of the gaming unit 20, 30 that may need to be configured. The configuration data may often be associated with the addition of new hardware, a new software routine, etc.

Each gaming server 48 may include a controller 48 a that may comprise a program memory 48 b, a microcontroller or microprocessor (MP) 48 c, a random-access memory (RAM) 48 d and an input/output (I/O) circuit 48 e, all of which may be interconnected via an address/data bus 48 f. It should be appreciated that although only one microprocessor 48 c is shown, the controller 48 a may include multiple microprocessors 48 c. Similarly, the memory of the controller 48 a may include multiple RAMs 48 d and multiple program memories 48 b. Although the I/O circuit 22 e is shown as a single block, it should be appreciated that the I/O circuit 22 e may include a number of different types of I/O circuits. The RAM(s) 48 d and program memories 48 b may be implemented as semiconductor memories, magnetically readable memories, and/or optically readable memories, for example.

Although the program memory 48 b is shown in FIG. 2 as a read-only memory (ROM) 48 d, the program memory of the controller 48 a may be a read/write or alterable memory, such as a hard disk. In the event a hard disk is used as a program memory, the address/data bus 48 f shown schematically in FIG. 2 may comprise multiple address/data buses, which may be of different types, and there may be an I/O circuit disposed between the address/data buses. The I/O circuit 48 e may be coupled to the network 40 via a data link 48 g.

In some cases, the various gaming units 20, 30 may serve as gaming servers 48, or a gaming server 48 may be included with a gaming unit 20, 30 to facilitate software sharing among a group of gaming units 20, 30. In such cases, the gaming unit 20, 30 and the gaming server 48 may share the same controller 48 a. The gaming servers 48 may further provide gaming server information to one or more of the master gaming servers 28, 36 including available software or gaming data, restrictions on use, file size, network identification, description of the gaming server, geographic location, network subnet data, etc. The gaming server information may be provided in response to a master gaming server query, or provided by the gaming server 48 periodically. Although only one of the gaming servers 48 is shown with the controller 48 a, each of the remaining gaming servers 48 may include similar components.

The network computers 46, gaming server computers 48 and master gaming servers, if included, may be provided together in geographic proximity to each other or in separate geographic locations. Likewise, the network 40, or portions thereof, may be located in proximate or separate geographic locations from the first and second networks 12, 26, such as in a different casino, different city, different state, etc. The data links 47, 49 may be provided as wireless or dedicated hardwired links, and may each comprise multiple links. Though the network 40 is shown to include one network computer 46 and three gaming servers 48, it should be understood that different numbers of computers and servers may be utilized. Various network designs may also be utilized.

FIG. 3 is a perspective view of one possible embodiment of one or more of the gaming units 20. Although the following description addresses the design of the gaming units 20, it should be understood that the gaming units 30 may have the same design as the gaming units 20 described below. It should be understood that the design of one or more of the gaming units 20 may be different than the design of other gaming units 20, and that the design of one or more of the gaming units 30 may be different than the design of other gaming units 30. Each gaming unit 20 may be any type of casino gaming unit and may have various different structures and methods of operation. For exemplary purposes, various designs of the gaming units 20 are described below, but it should be understood that numerous other designs may be utilized.

Referring to FIG. 3, the casino gaming unit 20 may include a housing or cabinet 50 and one or more input devices, which may include a coin slot or acceptor 52, a paper currency acceptor 54, a ticket reader/printer 56 and a card reader 58, which may be used to input value to the gaming unit 20. A value input device may include any device that can accept value from a customer. As used herein, the term “value” may encompass gaming tokens, coins, paper currency, ticket vouchers, credit or debit cards, smart cards, and any other object representative of value.

If provided on the gaming unit 20, the ticket reader/printer 56 may be used to read and/or print or otherwise encode ticket vouchers 60. The ticket vouchers 60 may be composed of paper or another printable or encodable material and may have one or more of the following informational items printed or encoded thereon: the casino name, the type of ticket voucher, a validation number, a bar code with control and/or security data, the date and time of issuance of the ticket voucher, redemption instructions and restrictions, a description of an award, and any other information that may be necessary or desirable. Different types of ticket vouchers 60 could be used, such as bonus ticket vouchers, cash-redemption ticket vouchers, casino chip ticket vouchers, extra game play ticket vouchers, merchandise ticket vouchers, restaurant ticket vouchers, show ticket vouchers, etc. The ticket vouchers 60 could be printed with an optically readable material such as ink, or data on the ticket vouchers 60 could be magnetically encoded. The ticket reader/printer 56 may be provided with the ability to both read and print ticket vouchers 60, or it may be provided with the ability to only read or only print or encode ticket vouchers 60. In the latter case, for example, some of the gaming units 20 may have ticket printers 56 that may be used to print ticket vouchers 60, which could then be used by a player in other gaming units 20 that have ticket readers 56.

If provided, the card reader 58 may include any type of card reading device, such as a magnetic card reader or an optical card reader, and may be used to read data from a card offered by a player, such as a credit card or a player tracking card. If provided for player tracking purposes, the card reader 58 may be used to read data from, and/or write data to, player tracking cards that are capable of storing data representing the identity of a player, the identity of a casino, the player's gaming habits, etc.

The gaming unit 20 may include one or more audio speakers 62, a coin payout tray 64, an input control panel 66, and a display unit 70. Where the gaming unit 20 is designed to facilitate play of a video casino game, such as video poker or video slots, the display unit 70 may be a color video display unit that displays images relating to the particular game or games. Where the gaming unit 20 is designed to facilitate play of a reel-type slot machine, the display unit 70 may comprise a plurality of mechanical reels that are rotatable, with each of the reels having a plurality of reel images disposed thereon. The audio speakers 62 may generate audio representing sounds such as the noise of spinning slot machine reels, a dealer's voice, music, announcements or any other audio related to a casino game. The input control panel 66 may be provided with a plurality of pushbuttons or touch-sensitive areas that may be pressed by a player to select games, make wagers, make gaming decisions, etc.

FIG. 3A illustrates one possible embodiment of the control panel 66, which may be used where the gaming unit 20 is a slot machine having a plurality of mechanical or “virtual” reels. Referring to FIG. 3A, if the display unit 70 is provided in the form of a video display unit, the control panel 66 may include a “See Pays” button 72 that, when activated, causes the display unit 70 to generate one or more display screens showing the odds or payout information for the game or games provided by the gaming unit 20. As used herein, the term “button” is intended to encompass any device that allows a player to make an input, such as an input device that must be depressed to make an input selection or a display area that a player may simply touch. The control panel 66 may include a “Cash Out” button 74 that may be activated when a player decides to terminate play on the gaming unit 20, in which case the gaming unit 20 may return value to the player, such as by returning a number of coins to the player via the payout tray 64.

If the gaming unit 20 provides a slots game having a plurality of reels and a plurality of paylines which define winning combinations of reel symbols, the control panel 66 may be provided with a plurality of selection buttons 76, each of which allows the player to select a different number of paylines prior to spinning the reels. For example, five buttons 76 may be provided, each of which may allow a player to select one, three, five, seven or nine paylines.

If the gaming unit 20 provides a slots game having a plurality of reels, the control panel 66 may be provided with a plurality of selection buttons 78 each of which allows a player to specify a wager amount for each payline selected. For example, if the smallest wager accepted by the gaming unit 20 is a quarter ($0.25), the gaming unit 20 may be provided with five selection buttons 78, each of which may allow a player to select one, two, three, four or five quarters to wager for each payline selected. In that case, if a player were to activate the “5” button 76 (meaning that five paylines were to be played on the next spin of the reels) and then activate the “3” button 78 (meaning that three coins per payline were to be wagered), the total wager would be $3.75 (assuming the minimum bet was $0.25).

The control panel 66 may include a “Max Bet” button 80 to allow a player to make the maximum wager allowable for a game. In the above example, where up to nine paylines were provided and up to five quarters could be wagered for each payline selected, the maximum wager would be 45 quarters, or $11.25. The control panel 66 may include a spin button 82 to allow the player to initiate spinning of the reels of a slots game after a wager has been made.

In FIG. 3A, a rectangle is shown around the buttons 72, 74, 76, 78, 80, 82. It should be understood that that rectangle simply designates, for ease of reference, an area in which the buttons 72, 74, 76, 78, 80, 82 may be located. Consequently, the term “control panel” should not be construed to imply that a panel or plate separate from the housing 50 of the gaming unit 20 is required, and the term “control panel” may encompass a plurality or grouping of player activatable buttons.

Although one possible control panel 66 is described above, it should be understood that different buttons could be utilized in the control panel 66, and that the particular buttons used may depend on the game or games that could be played on the gaming unit 20. If the display unit 70 is provided as a video display unit, the control panel 66 could be generated by the display unit 70. In that case, each of the buttons of the control panel 66 could be a colored area generated by the display unit 70, and some type of mechanism may be associated with the display unit 70 to detect when each of the buttons was touched, such as a touch-sensitive screen.

Gaming Unit Electronics

FIG. 4 is a block diagram of a number of components that may be incorporated in the gaming unit 20. Referring to FIG. 4, the gaming unit 20 may include a controller 100 that may comprise a program memory 102, a microcontroller or microprocessor (MP) 104, a random-access memory (RAM) 106 and an input/output (I/O) circuit 108, all of which may be interconnected via an address/data bus 110. It should be appreciated that although only one microprocessor 104 is shown, the controller 100 may include multiple microprocessors 104. Similarly, the memory of the controller 100 may include multiple RAMs 106 and multiple program memories 102. Although the I/O circuit 108 is shown as a single block, it should be appreciated that the I/O circuit 108 may include a number of different types of I/O circuits. The RAM(s) 104 and program memories 102 may be implemented as semiconductor memories, magnetically readable memories, and/or optically readable memories, for example.

Although the program memory 102 is shown in FIG. 4 as a read-only memory (ROM) 102, the program memory of the controller 100 may be a read/write or alterable memory, such as a hard disk. In the event a hard disk is used as a program memory, the address/data bus 110 shown schematically in FIG. 4 may comprise multiple address/data buses, which may be of different types, and there may be an I/O circuit disposed between the address/data buses.

FIG. 4 illustrates that the control panel 66, the coin acceptor 52, the bill acceptor 54, the card reader 58 and the ticket reader/printer 56 may be operatively coupled to the I/O circuit 108, each of those components being so coupled by either a unidirectional or bidirectional, single-line or multiple-line data link, which may depend on the design of the component that is used. The speaker(s) 62 may be operatively coupled to a sound circuit 112, that may comprise a voice- and sound-synthesis circuit or that may comprise a driver circuit. The sound-generating circuit 112 may be coupled to the I/O circuit 108. The I/O circuit 108, in turn, may be coupled to the network 12 via a data link 24.

As shown in FIG. 4, the components 52, 54, 56, 58, 66, 112 may be connected to the I/O circuit 108 via a respective direct line or conductor. Different connection schemes could be used. For example, one or more of the components shown in FIG. 4 may be connected to the I/O circuit 108 via a common bus or other data link that is shared by a number of components. Furthermore, some of the components may be directly connected to the microprocessor 104 without passing through the I/O circuit 108.

Network Communication

FIG. 5 is a flowchart of a network communication routine 120 that may be stored in the memory of the controller 100. The network communication routine 120 may be performed whenever the gaming unit 20 is powered on or whenever it is desired to perform a software download such as during maintenance, reconfiguration of the gaming unit 20, software updates, prior to or during a main operating routine, etc. Referring to FIG. 5, the network communication routine 120 may begin operation at block 121 during which a network computer 22 may be contacted by the gaming unit 20. In the present example, the gaming unit 20 may be dedicated to a particular network computer 22, which may be the network computer 22 on the same network 12 as the gaming unit 20. The gaming unit 20 may also be dedicated to another network computer 32, 46 on another network 26, 40. If dedicated to a particular network computer 22, the particular network computer 22 may always be contacted by the gaming unit 20. The dedicated network computer 22 may also be first contacted before attempting to contact another network computer 32, 46.

Upon making contact with the network computer 22 at block 121, the controller 100 may submit a gaming unit identification and a request for a network identification to the network computer 22 at block 122. The request may be made in accordance with network communication protocol stored in the memory of the controller 100, such as TCP/IP software. The gaming unit identification may be an identification unique to only that particular gaming unit 20. The gaming unit identification may take any form, such as a simple alphanumeric code, to a more detailed identification that includes authentication data, such as a description of the network or network subnet to which the gaming unit 20 belongs, the casino to which the gaming unit 20 belongs, a description of the gaming unit 20, the location of the gaming unit 20, or other authentication data generally considered unique to the gaming unit 20. In one example, the gaming unit identification may comprise or be accompanied with a passcode associated with the particular gaming unit 20. The network computer 22 may compare the gaming unit identification to a list of gaming unit identifications of all the gaming units 20 that may contact the network computer 22. The gaming unit identification may be additionally verified by comparing the authentication data to authentication data stored by the network computer 22. The gaming unit identification may also be encrypted, and accepted by the network computer 22 if the gaming unit identification is properly decrypted. The gaming unit identification, authentication data and the encryption may be used for security purposes to prevent unauthorized access to the network 12. Additional security protocols as known to those of ordinary skill in the art may also be utilized.

If the gaming unit identification is valid and authentic, as determined at block 123, the gaming unit 20, 30 may receive an offer from the network computer 22. The offer may indicate that the gaming unit identification is accepted. The offer may further include a network identification for the gaming unit 20. The network identification may be used by the gaming unit 20 to identify itself on the network 12 and allow the gaming unit 20 to communicate with other devices on the network 12 or on other networks 26, 40. The network identification may be assigned according to the communication protocol of the network 22. For example, the network identification may be assigned according to dynamic host configuration protocol (DHCP), where the network computer 22 may store a range of network identifications, such as IP addresses, corresponding to the number of gaming units 20 or other devices that may connect to the network 12 at any one time. The range may be set by a network administrator.

A network identification may be dynamically allocated by the network computer 22 upon each request from a gaming unit 20 with a valid and authentic gaming unit identification. The network identification assigned to the gaming unit 20 may be unique among other network identifications issued for communication on the network 12, or the network identification may be unique from other network identifications issued among all networks 12, 26, 40. In the former case, additional layers of identification, such as identifying the network 12 to which the gaming unit 20 belongs, may be used for communication on additional networks 26, 40 to differentiate from other gaming units 30 that may otherwise have the same network identification. In the latter case, a single network computer 46 may assign a range of network identifications to several network computers 22, 32, 46 to issue to gaming units 20, 30 and devices on the various networks 12, 26, 40. These ranges may also be set by a network administrator.

If the gaming unit 20 receives an offer, control may pass to block 124 where the controller 100 may receive and accept the network identification. If an offer is not received, control may pass back to block 121 where the controller 100 may attempt to contact the network computer 22 again, attempt to contact another network computer 32, 46, or discontinue attempting to contact any network computer 22, 32, 46.

Following the receipt and acceptance of the network identification at block 124, information may be requested about the network 12 from the network computer 22. The request may include a request for the configuration of the network 12, additional networks 26, 40 operatively coupled to the network 12, the identification of various devices connected to the network(s), etc. The request may specifically ask the network computer 22 to identify master gaming servers 28, 36 that are on the networks 12, 26, 40. At block 126, the controller 100 may receive a response to the request for network information from the network computer 12. Among the information supplied by the network computer 12 may be information regarding the master server(s) 28, 36 that the gaming unit may contact. The routine may then terminate and turn control over to a master gaming server communication routine where the gaming unit 20 may contact and communication with a master gaming server 28.

FIG. 6 is a flowchart of an alternative network communication routine 130 that may be stored in the memory of the controller 100. The network communication routine 130 may be utilized by gaming units 20 to select from among multiple network computers 12, 32, 46 as opposed to a dedicated network computer. As with the network communication routine 120 discussed above, the network communication routine 130 may be performed at any time. Referring to FIG. 6, the network communication routine 130 may begin operation at block 131 during which several different network computers 22, 32, 46 may be contacted. This may involve sending the gaming unit identification over the networks 12, 26, 40 with a general request for all network computers 22, 32, 46 to respond. However, the gaming unit identification may be withheld until the gaming unit 20 receives responses from all available network computers 22, 32, 46.

As mentioned above, the gaming unit identification may be unique to the gaming unit 20 and may include additional data for verification and authentication. Upon contacting each of the network computers 22, 32, 46 at block 131, the controller 100 may receive offers from all available network computers 22, 32, 46, or those that have verified and authenticated the gaming unit identification, at block 132. Each offer may indicate that the gaming unit identification is accepted by the network computer 22, 32, 46, and may be accompanied by a network identification. Additional information that may be included with the offer includes the network computer's geographic location, identification, associated network, lease time of the network identification (i.e., how long the network identification will be allocated to the gaming unit 20), network computer load (e.g., how many other gaming units 20 are requesting a network identification from that network computer), the network identification being offered, authentication data, network subnet data, etc.

At block 133, each of the offers received at block 132 may be analyzed. The analysis may be based on a variety of factors, including which network computer was the first to respond, which has the fastest transfer rate, which has the closest geographic location, which has the least amount of load, lease time, network subnet data, etc. One or more of these factors may be considered more important than the others and the results of the analysis may be based only on that factor(s). For example, the authentication data may be used to verify that the network computer 22, 32, 46 being contacted is the correct network computer. If the authentication data fails, that network computer may be rejected regardless of the other factors. Alternatively, each factor may be weighted according to importance (e.g., location considered more important and therefore weighted heavier than other factors), and a weighted average may be calculated for each network computer 22, 32, 46. The network computer 22, 32, 46 with the highest weighted average is considered the selected network computer. Each factor may also be given equal weight and averaged accordingly. Threshold values may also preclude the gaming unit 20 from even considering a network computer 22, 32, 46. For example, the network computer 22 may the closest geographically, but if its network load is too high the gaming unit 20 may discard the network computer 22 as an option despite its proximity.

After analyzing each of the offers at block 133, one of the network computers 22, 32, 46 may be selected at block 134 based on the analyses from block 133. This selection may be made automatically by the controller 100 based on the above analysis. Alternatively, a list of all available network computers 22, 32, 46 may be presented on the display unit 70 to an operator who may then choose a network computer 22, 32, 46. The operator may be any person that may interact with the gaming unit 20, including a player, maintenance personnel, a casino attendant, etc. Though some examples may refer to a player, it should be understood by those of ordinary skill in the art that similar examples may be carried out by other persons. The list of the available network computers 22, 32, 46 may include the details about each network computer 22, 32, 46, the results of the analysis, etc. to aid the operator's decision. The list may or may not include any network computer 22, 32, 46 that was rejected, for example because of a failed authentication. Alternatively, the operator may simply be precluded from selecting a rejected network computer 22, 32, 46.

The selection of a network computer 22 at block 134 may include notifying that network computer 22 of its selection. The remaining network computers 32, 46 may be notified of their rejection, which may be done by sending the acceptance of the one network computer 22 to all other network computers 32, 46 or by overtly indicating the rejection to each of the remaining network computers 32, 46. Alternatively, a predetermined amount of time may pass, during which if a network computer 32, 40 does not receive an acceptance it considers itself rejected. The selection may be indicated to the network computer 22 in any form, including acceptance of the offered network identification, a request for network information, etc.

The controller 100 may then receive the network identification from the chosen network computer 22, which may include network configuration, identification and information regarding various devices on the network, including master gaming servers 28, 36. Upon receiving the network information at block 135, the network communication routine 130 may terminate and turn control over to the master gaming server communication routine.

Verification and Authentication

FIG. 7 is an authentication routine 140 referenced above with FIG. 5 and FIG. 6 that may be stored in a memory of a network computer 22, 32, 46. The authentication routine 140 may be utilized to authenticate and verify a gaming unit identification when a gaming unit is requesting a network identification. However, a similar process may be used by the network computers 22, 32, 46, master gaming servers 28, 36 and gaming servers 48 when communicating with a gaming unit 20 to verify and authenticate the network identification. Beginning at block 141, a network computer 22 may receive a gaming unit identification from a gaming unit 20, as sent at blocks 122 or 132 of FIG. 5 and FIG. 6 respectively. The network computer 22, 32, 46 may determine at block 142 whether the gaming unit identification is valid and authentic. The determination may be done by comparing the gaming unit identification to a list stored in the memory of the network computer 22, comparison of the authentication data to information known about the gaming unit 20, valid decryption of the information, or any other network security method. If the gaming unit identification is determined to be authentic at block 142, control may pass to block 143 to send authentication data back to the gaming unit 20. Otherwise, the network computer 22, 32, 46 may terminate its connection with the gaming unit 20 at block 145.

If the gaming unit identification is valid and authentic as determined at block 142, the network computer 22, 32, 46 may send a network identification back to the gaming unit 20 at block 143. In addition to sending the network identification, the network computer 22, 32, 46 may send additional network computer information such as geographic location, identification, associated network, lease time, network computer load, network subnet data, etc. The gaming unit 20 may use this additional information to verify that it is communicating with the correct network computer 22, 32, 46 (i.e., authenticate the network computer) and to decide whether to accept the network identification or not. The network computer 22, 32, 46 may determine whether or not the gaming unit 20 accepted the network identification at block 144, which may be a specific acceptance from the gaming unit 20, a request for network information, etc. If the gaming unit accepted the network identification, the network computer 22, 32, 46 may continue communicating with the gaming unit 20 as discussed above. If the gaming unit 20 rejects the network identification or if the gaming unit 20 fails to respond within a predetermined amount of time, the network computer 22, 32, 46 may terminate its communication with the gaming unit 20 at block 145.

Master Gaming Server Communication

FIG. 8 is a flowchart of a master gaming server communication routine 150 that may be stored in the memory of the controller 100. While the following description describes the master gaming server 28, 36 as a separate device on the network 12, 26, 40, as mentioned above, the master gaming server 28, 36 may also be the network computer 22, 32, 46. As will be recognized by those of ordinary skill in the art, some aspects of the following description may not be applicable in the case of a master gaming server being the network computer 22, 32, 46 that issued the network identification, although this may not preclude the gaming unit 20 from communicating with other master gaming servers 28, 36.

Referring to FIG. 8, the master server communication routine 150 may begin operation at block 151 where the gaming unit 20 may find available master gaming servers 28, 36. As with the network computers 22, 32, 46, the gaming unit 20 may be hard coded to search for a particular master gaming server 28. If the particular master gaming server 28 is unavailable, the gaming unit 20 may then turn to another master gaming server 36, or disconnect from the network 12. In the present example, the gaming unit 20 may review the network information provided by the network computer 22, 32, 46 at blocks 126, 135 from the network communication routines 120, 130. The network information may include the identification of the master gaming servers 28, 36, the geographic location of the master gaming servers 28, 36, associated network subnet data, etc. Alternatively, the gaming unit 20 may search the network(s) 12, 26, 40 for all master gaming servers 28, 36 and request information from each one. Information regarding each master gaming server 28, 36 may include authentication data to verify that the master gaming server 28, 36 is valid.

Once the master gaming servers 28, 36 have been found at block 151, the gaming unit 20 may determine whether there is just one master gaming server 28, 36 to choose from, or if there are multiple master gaming servers 28, 36 to choose from at block 152. If there is only one master gaming server 28, or if a particular master gaming server 28 is dedicated to the gaming unit 20, control may pass to block 155 and the gaming unit 20 may contact that master gaming server 28. If there are multiple master gaming servers 28, 36 to choose from, as determined at block 152, control may pass to block 153 where a list of the master gaming servers 28, 36 may be displayed to an operator on the display unit 70. The list of master gaming servers 28, 36 may include information about each server, such as its geographic location, the gaming server information that may be provided, network subnet data, etc. As with the network computers 22, 32, 46, each master gaming server 28, 36 may be analyzed and organized (e.g., ranked) according to the information about each master gaming server 28, 36, and the gaming unit 20 may omit or preclude the operator from selecting any master gaming servers 28, 36 that fails to pass a threshold test, including authentication, data transfer rate, etc. This information may likewise be displayed on the display unit 70.

At block 154, the gaming unit 20 may determine whether or not a master gaming server 28, 36 has been selected by the operator. If not, the routine may wait until the operator makes a selection. If a selection is made, as determined at block 154, control may pass to block 155 to contact the chosen master gaming server 28, 36. Alternatively, the selection of a master gaming server 28, 36 at block 154 may be done automatically by the controller 100 based on the available information about each master gaming server 28, 36, an analysis of each, etc.

At block 155, the gaming unit 20 may contact the chosen master gaming server 28 to indicate that it has been selected. As with the network computer selection above, this may be done by contacting just the selected master gaming server 28 and letting the remaining master gaming servers 36 discontinue communication attempts after a predetermined time, indicating the selection to all master gaming servers 28, 36, or overtly rejecting each of the unselected master gaming servers 36.

Once the selected master gaming server 28 has been contacted at block 155, the gaming unit 20 may request a list of all available gaming servers 48 at block 156. The list may further include all available gaming units 20, 30 that may share gaming data with other gaming units 20 and/or information regarding each gaming server 48 including its network identification, description, geographic location, responsiveness, data transfer rate, available gaming data, restrictions on use, network subnet data, etc. When the gaming unit 20 receives the requested information regarding the gaming server 48, the routine may terminate and turn control over to the gaming server communication routine.

Gaming Server Communication

FIG. 9 is a flowchart of a gaming server communication routine 160 that may be stored in the memory of the controller 100. The gaming server communication routine 160 may be performed once the gaming unit 20 has received a list of all available gaming servers 48. The list may be restricted only to gaming servers 48 on particular networks, or the list may include gaming servers 48 on a variety of networks. The gaming server communication routine 160 may begin at block 161 where the gaming unit 20 may initiate a status check of each gaming server 48. For example, using TCP/IP the gaming unit 20 may initiate a “ping” operation to test each gaming server 48. The ping operation 161 may provide or be used to derive information relating to the data transfer rate, estimated transfer time for each data file, throughput, responsiveness, accessibility, availability and existence of each gaming server 48.

Using the information gathered from the ping operation 161, and further using information that may be provided by the master gaming server 28, 36 such as the network identification, description, geographic location, available gaming data, file size, network subnet data, etc. of each gaming server 48, each gaming server 48 may be analyzed at block 162. However, it should be noted that much of the information from the master gaming server 28, 36 may also be received through communications with each of the gaming servers 48 which may be more current than what the master gaming server 48 may provide.

The analysis at block 162 may use any or all of the information as factors to analyze and organize (e.g., rank) each gaming server 48 that has been contacted. For example, each of the factors may be assigned a numerical value, and the gaming servers 48 may be ranked according to the total sum of the factors, the average numerical value of all the factors, etc. Some factors may be considered more important than others and may therefore be weighted accordingly. For example, the data transfer rate may be considered more important than available gaming data. This may cause a gaming server 48 having a greater selection of available gaming data but a low data transfer rate to be ranked lower than a gaming server 48 having a smaller available gaming data selection but a high data transfer rate. The weighting may result in a total sum score for each gaming server 48 or a weighted average for each gaming server 48. Some factors may be of such importance that it is determinative of whether or not the gaming server 48 will be ranked at all. For example, if the pinging operation indicates that the gaming server 48 does not exist (e.g., the gaming server 48 was taken offline), then all other factors may be rendered moot. In another example, the rankings may simply be based on which gaming server 48 responded first, which responded second, etc.

Following the analysis and organization at block 162, a gaming server 48 may be selected at block 163 based on the analysis and rankings at block 162. As indicated above, some factors may be more determinative than others. For example, even if the rankings first list a gaming server 48 with a low data transfer rate, the routine 100 may refuse that gaming server 48 in favor of one with a higher data transfer rate. The routine 100 may even use threshold tests to eliminate unsatisfactory gaming servers 48. The threshold test may be based on a minimum required value, such as a minimum data transfer rate, a minimum geographic proximity, a minimum responsiveness, a maximum allowable network or server load, maximum file sizes, etc. The threshold test may also be based on the available gaming data. For example, if a gaming server 48 does not have video poker, video blackjack or video slots, then the gaming server 48 will not be selected.

Upon selecting a gaming server 48 at block 163, the gaming data may be downloaded to the memory of the controller 100 at block 164. In some cases, the selected gaming server 48 may provide various files of gaming data and an operator may be allowed to specifically select the data file. In other cases, such as with an update or reconfiguration, there may be only one data file of gaming data available to be downloaded. In the latter case, the gaming data may be downloaded automatically without further action by the operator. When the downloading operation is complete, the network computer 22, 32, 46 that issued the network identification may be notified that it will no longer be communicating on the network 12, 26, 40. The network computer 22, 32, 46 may acknowledge the gaming unit 20 and no longer identify the network identification with that gaming unit 20. Alternatively, the gaming unit 20 may remain communicatively coupled to the network 12, 26, 40 for further downloads or to serve as a gaming server 48 for other gaming units 20, 30.

FIG. 10 is a flowchart of an alternative gaming server communication routine 170 that may be stored in the memory of the controller 100. The gaming server communication routine 170 may be utilized by gaming units 20 to manually select a gaming server 48 from among multiple gaming servers 48. As with the gaming server communication routine 160 discussed above, the gaming server communication routine 170 may be performed once the gaming unit 20 has received a list of all available gaming servers 48 from the master gaming server 28, 36. Referring to FIG. 10, the gaming server communication routine 170 may begin operation at block 171 during which the routine may initiate a status check of each gaming server 48 using a ping operation or other suitable operation which may be dependent on the particular network communications protocol. The ping operation 161 may provide or be used to derive information about each gaming server 48 such as its data transfer rate, the estimated download time for each data file, throughput, responsiveness, accessibility, existence, etc. The routine may also gather further information from each gaming server 48 such as network identification, description, geographic location, gaming data, gaming data specifics (e.g., file size), associated network subnet data, etc. Some or all of this information may also be provided by the master gaming server 28, 36.

The gaming unit 20 may use the information from block 171 to analyze and organize (e.g., rank) each gaming server 48 at block 172. The analysis and rank may be based on some or all of the information mentioned above. The rankings may be based on a total sum score for each gaming server 48 or an average score. Some factors may be weighted more heavily than others and some factors may be determinative of whether the gaming server 48 will be considered at all. Additionally, the routine may use threshold values to determine whether a gaming server 48 will be considered.

When the gaming servers 48 have been analyzed and organized at block 172, they may be displayed on the display unit 70 to the operator. The display at block 173 may reflect the ranking of the gaming servers 48 from block 172. Additionally, the display may reflect the information that was taken into account when ranking the gaming servers 48. Not all gaming servers 48 may be represented in the display. For example, if Server C happens to be offline or fail to meet a threshold criteria, it may not be made available to the operator for selection. The display at block 173 may be used by the operator to select one of the gaming servers 48. The display may also be dynamic to display various types of information about each gaming server 48, data file, etc. at the operator's request.

When the available gaming servers 48 have been displayed at block 173, the routine may wait for a selection to be made by the operator at block 174. The selection may be made using the control panel 66 or by using a touch-sensitive screen if provided with the display unit 70. The selection may relate to just a gaming server 48 and/or a selection of a particular data file to download. For example, the operator may decide to download gaming data for poker from Server A. The operator's selection of poker from Server A may cause the gaming unit 20 to initiate downloading of the data file from Server A at block 175. The selection of just a gaming server 48 may cause the routine to prompt the player for a selection of a data file from that gaming server 48. Alternatively, the gaming unit 20 may begin to download all available gaming data from the selected gaming server 48. Once the downloading operation is completed at block 175, the gaming unit 20 may terminate communications over the network 12, 26, 40 or remain on the network 12, 26, 40 for further downloads or to act as a gaming server 48 itself.

FIG. 11 is an exemplary display 180 that may be shown on the display unit 70 during performance of the gaming server communication routine 170 shown schematically in FIG. 10, and specifically during the display of the gaming servers 48 at block 173. Referring to FIG. 11, the display 180 may include a video image 181 of one or more gaming servers 48 that are available for selection. In the present example, Server C has been left off the list either because it was not online or did not pass a threshold test. The gaming servers 48 may be displayed according to the organization determined at block 172.

To allow the operator to control the information displayed in the video image 181, a plurality of operator-selectable buttons may be displayed. The buttons may include a “Rank Speed” button 182, a “Rank Location” button 183, a “More Info” button 184, a “Select” button 185 and a “Search” button 186. The “Rank Speed” button 182 may cause the video image 181 to rank the gaming servers 48 according to the data transfer rate. The “Rank Location” button 183 may cause the video image 181 to rank the gaming servers 48 according to their proximity. Various other information types may be provided in the video image 181 with corresponding buttons to vary the display of the gaming servers 48. For example, the network subnet of each gaming server 48 may be displayed with a “Rank Subnet” button (not shown). The gaming servers 48 may be ranked according to their associated network subnet which may be based on a variety of factors about the network subnet, including geographic proximity, speed, etc. The “More Info” button 184 may cause the gaming unit 20 to display various other types of information that may be selected and displayed regarding each gaming server 48 in the video display 180. For example, information about a gaming server's network subnet may be displayed to allow the user the opportunity to choose a gaming server 48 based on characteristics associated with its network subnet. The “Select” button 185 may be used to select a particular gaming server 48 or data file. The “Search” button 186 may be used to search for only those servers that have a specific data file (e.g., poker), a minimum data transfer rate (e.g., over 60 kB/s), associated network subnet data, etc. If the display unit 70 is provided with a touch-sensitive screen, the button may form part of the video display 180. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.

Status Check

FIG. 12 is a flowchart of a ping operation routine 161, 171 respectively shown schematically in FIG. 9 and in FIG. 10. The ping operation routine 161, 171, as described herein, may generally relate to pinging one gaming server 48, and may be performed for each known gaming server 48. Referring to FIG. 12, at block 190, the routine may construct a network message with a type identifier and a unique data. Using TCP/IP, the type identifier may indicate a “ping”. The unique data may be anything to uniquely identify the message and compare it against a response to the network message, for example, the network identification of the gaming server 48 being pinged. When the network message has been created at block 190, the routine may send the network message to the destined gaming server 48 at block 191. The routine may record the time that the network message was sent and store the time in the memory of the controller 100.

At block 192, the routine may wait a predetermined time for a response from the gaming server 48. After the predetermined time has passed, the routine may check to see if the gaming server 48 has sent a response to the network message and record the response time. If a response has been not been sent back within the predetermined time, as determined at block 193, the routine may pass control to block 194 to indicate an error has occurred. The error indication at block 194 may signal that either the gaming server 48 does not exist (e.g., it is offline) or the gaming server 48 is unavailable (e.g., high load). A response time or ping value may normally relate to the difference in time from when the network message was sent and the time it was received. If there is an error, the response time or ping value may be set to a unique value to indicate the specific type of error, and an error code may be set (e.g. Error Code=0) to indicate a failed ping operation.

If the gaming server 48 has responded to the network message, as determined at block 193, the routine may check to see if there were any network errors at block 196. The network errors may be sent by the gaming server 48 itself, indicating it received only part of the network message, requesting a resend, etc. If network errors exist as determined at block 196, control may pass to block 194 to indicate the error with the response time or ping value indicating the type of error and the error code indicating a failed ping operation. If there are no network errors, the routine may check to see that the response included the unique data sent in the network message at block 197. If not, control may pass back to block 192 to continue waiting for the unique data, in case the entire response has not been received yet. If the response includes the unique data, the routine may determine information from the response at block 198. For example, the routine may compute the difference between the time the entire message was received and the time the message was sent to calculate the response time or ping value. The response time or ping value may indicate the load of the gaming server 48, the responsiveness of the gaming server 48, the data transfer rate of the gaming server 48, etc. The error code may be set to indicate the ping was successful. The results may be provided to routines 160, 170 for further analysis.

When the ping operation has been completed for each gaming server 48, the gaming unit 20 may maintain a list of all the gaming servers 48 and their ping values. The gaming unit 20 may also share the results with the master gaming server 28, 36 so that the master gaming server 28, 36 may update its list to add/delete available gaming servers 48 based on the ping results.

Operation of Gaming Server

FIG. 13 is a flowchart of a main operating routine 200 that may be stored in a memory of the controller 48 a of the gaming server 48. The routine may be performed for each gaming unit 20, 30 that may communicate with the gaming server 48, and may be performed simultaneously while communicating with other gaming units 20, 30. Referring to FIG. 13, the main operating routine 200 may begin operation at block 201 during which the gaming server 48 may wait to receive a request from a gaming unit 20, 30 to communicate with the gaming server 48. The request may include the network identification of the gaming unit 20, 30 and a request for information about the gaming server 48 (e.g., data transfer rate, responsiveness, load, available gaming data, file size, location, description, network subnet data, etc.). If a request is received from a gaming unit 20, 30 as determined at block 202, the wait sequence may be terminated and the gaming server 48 may prepare to verify the validity and authenticity of the gaming unit 20, 30. At block 203, the gaming server 48 may receive the network identification of the gaming unit 20, 30 to verify that the gaming unit 20, 30 is permitted to communicate on the network 40. The network identification may also be accompanied by the gaming unit identification and authentication data, and the gaming server 48 may use this information to further validate and authenticate the gaming unit 20, 30 similar to the authentication routine 140 described above.

If the network identification is not valid as determined at block 204, the gaming server 48 may terminate its communication session with the gaming unit 20, 30. If the network identification is valid, the gaming server 48 may send a signal to the gaming unit 20, 30 to acknowledge the gaming unit identification was valid and authentic, and enter a wait state at block 205 to wait for a ping network, message from the gaming unit 20, 30. The gaming server 48 may wait for a predetermined time and then determine if a ping network message has been received at block 206. If a ping network message was not received, the gaming server 48 may assume that the gaming unit 20, 30 chose another gaming server, that the ping network message was corrupted or lost, or that the gaming unit 20, 30 is unable to communicate with the gaming server 48 for some reason such as high network load, high server load, etc.

If a ping network message is received, the gaming server 48 may provide the gaming unit 20, 30 with a response at block 207. The response may include the time the gaming server received the ping network message, the time the response was sent, the unique data sent with the ping network message, etc. With or subsequent to the response, the gaming server 48 may provide additional information such as the various types of gaming data stored in the memory 48 b that may be downloaded by the gaming unit 20, 30, the file size of each, the location of the gaming server 48, the load on the gaming server 48 or any other information about the gaming server 48.

Following the response at block 207, the gaming server 48 may again wait for a signal from the gaming unit 20, 30 to determine if the gaming server 48 was selected. If the gaming server 48 receives a signal that it was not selected, another gaming server 48 was selected or if no signal is received after a predetermined time, the gaming server 48 may terminate communications with the gaming unit 20, 30. This may include sending the gaming unit 20, 30 an acknowledgement that communications will be terminated. If the gaming server 48 was selected for a downloading operation, the gaming server 48 may begin sending gaming data to the gaming unit 20, 30 at block 209. Alternatively, the gaming server 48 may wait for another signal from the gaming unit 20, 30 indicating the particular gaming data it wishes to download.

Overall Operation of Gaming Unit

One manner in which one or more of the gaming units 20 (and one or more of the gaming units 30) may operate is described below in connection with a number of flowcharts which represent a number of portions or routines of one or more computer programs, which may be stored in one or more of the memories of the controller 100. The computer program(s) or portions thereof may be stored remotely, outside of the gaming unit 20, and may control the operation of the gaming unit 20 from a remote location. Such remote control may be facilitated with the use of a wireless connection, or by an Internet interface that connects the gaming unit 20 with a remote computer (such as one of the network computers 22, 32) having a memory in which the computer program portions are stored. The computer program portions may be written in any high level language such as C, C++, C#, Java or the like or any low-level assembly or machine language. By storing the computer program portions therein, various portions of the memories 102, 106 are physically and/or structurally configured in accordance with computer program instructions.

FIG. 14 is a flowchart of a main operating routine 220 that may be stored in the memory of the controller 100. Referring to FIG. 14, the main routine 220 may begin operation at block 221 during which an attraction sequence may be performed in an attempt to induce a potential player in a casino to play the gaming unit 20. The attraction sequence may be performed by displaying one or more video images on the display unit 70 (if provided as a video display unit) and/or causing one or more sound segments, such as voice or music, to be generated via the speakers 62. The attraction sequence may include a scrolling list of games that may be played on the gaming unit 20 and/or video images of various games being played, such as video poker, video blackjack, video slots, video keno, video bingo, etc.

During performance of the attraction sequence, if a potential player makes any input to the gaming unit 20 as determined at block 222, the attraction sequence may be terminated and the gaming unit 20 may prepare to download software, such as a game or game update, from one of the gaming servers 48. The gaming unit 20 may detect an input at block 222 in various ways. For example, the gaming unit 20 could detect if the player presses any button on the gaming unit 20; the gaming unit 20 could determine if the player deposited one or more coins into the gaming unit 20; the gaming unit 20 could determine if the player deposited paper currency into the gaming unit; etc.

The server selection operation at block 223 may involve any of the routines discussed above, including connecting to a network 12, 26, 40, selecting a network computer 22, 32, 46, selecting a master gaming server 28, 36, and selecting a gaming server 48. Alternatively, the server selection operation at block 223 may be performed prior to the main operating routine 220 or at other times when a player is not using the gaming unit 20. For example, connecting to the network 12, 26, 40, selecting a network computer 22, 32, 46 and selecting a master gaming server 28, 36 may be performed prior to the main operating routine 220, though selecting a gaming server 48 may be performed at block 223, which may be useful if there are various software downloads (e.g., games) to choose from on various gaming servers 48. The player may be presented with a display of the available gaming servers 48, including the available software downloads, file size, estimated transfer time, etc., as referred to above. Gaming data, such as game routines to be played on the gaming unit 20, may be presented to the player as a display at block 224, although some of the game routines displayed at block 224 may be stored locally in a memory of the controller 100 and do not need to be downloaded.

Once the server selection operation is completed at block 223, a game-selection display may be generated on the display unit 70 (if provided as a video display unit) at block 224 to allow the player to select, download and play a game on the gaming unit 20. The game-selection display generated at block 224 may include, for example, a list of video games that may be downloaded from a selected gaming server 48 and played on the gaming unit 20 and/or a visual message to prompt the player to deposit value into the gaming unit 20. While the game-selection display is generated, the gaming unit 20 may wait for the player to make a game selection. The selection of a game may be made in conjunction with selecting a gaming server 48 where each gaming server 48 presents one or more of the games that may be downloaded and played. The selection of a gaming server 48 may also be read as a selection of a game. Upon selection of one of the games by the player as determined at block 225, the controller 100 may cause one of a number of game routines to be downloaded and/or performed to allow the selected game to be played. For example, the game routines could include a video poker routine 226, a video blackjack routine 227, a slots routine 228, a video keno routine 229, and a video bingo routine 228. At block 225, if no game selection is made within a given period of time, the operation may branch back to block 221.

After one of the routines 226, 227, 228, 229, 228 has been performed to allow the player to play one of the games, block 231 may be utilized to determine whether the player wishes to terminate play on the gaming unit 20 or to select another game. If the player wishes to stop playing the gaming unit 20, which wish may be expressed, for example, by selecting a “Cash Out” button, the controller 100 may dispense value to the player at block 232 based on the outcome of the game(s) played by the player. The operation may then return to block 221. If the player did not wish to quit as determined at block 231, the routine may return to block 225 where the game-selection display may again be generated to allow the player to select another game, which may include selecting a new gaming server 48 and downloading a new game.

It should be noted that although five gaming routines are shown in FIG. 4, a different number of routines could be included to allow play of a different number of games. The gaming unit 20 may also be programmed to allow play of different games.

FIG. 15 is a flowchart of an alternative main operating routine 300 that may be stored in the memory of the controller 100. The main routine 300 may be utilized for gaming units 20 that are designed to allow play of only a single game or single type of game. Referring to FIG. 15, the main routine 300 may begin operation at block 302 during which an attraction sequence may be performed in an attempt to induce a potential player in a casino to play the gaming unit 20. The attraction sequence may be performed by displaying one or more video images on the display unit 70 (if provided as a video display unit) and/or causing one or more sound segments, such as voice or music, to be generated via the speakers 62.

During performance of the attraction sequence, if a potential player makes any input to the gaming unit 20 as determined at block 304, the attraction sequence may be terminated and the gaming unit 20 may prepare to connect to a gaming server 48 and download software, such as a game or game update, from one of the gaming servers 48. The server selection operation at block 305 may involve connecting to a network 12, 26, 40, selecting a network computer 22, 32, 46, selecting a master gaming server 28, 26, and/or selecting a gaming server 48, though some or all of these operations may be performed prior to the player making an input to the gaming unit 20 as determined at block 304 or when a player is not present at the gaming unit 20. The player may be presented with a display of the various gaming servers 48 and their available software, such as game routines, file size, estimated transfer time, etc., as referred to above. The player may select a particular gaming server 48 and/or gaming routine which may then be downloaded from the gaming server 48.

Once the server selection operation is complete at block 305, a game display may be generated on the display unit 70 (if provided as a video display unit) at block 306. The game display generated at block 306 may include, for example, an image of the casino game that may be downloaded (or has been downloaded) and played on the gaming unit 20 and/or a visual message to prompt the player to deposit value into the gaming unit 20. At block 308, the gaming unit 20 may determine if the player requested information concerning the game, in which case the requested information may be displayed at block 310. Block 312 may be used to determine if the player requested initiation of a game, in which case a game routine 320 may be downloaded and/or performed. The game routine 320 could be any one of the game routines disclosed herein, such as one of the five game routines 226, 227, 228, 229, 228, or another game routine.

After the routine 320 has been performed to allow the player to play the game, block 322 may be utilized to determine whether the player wishes to terminate play on the gaming unit 20. If the player wishes to stop playing the gaming unit 20, which wish may be expressed, for example, by selecting a “Cash Out” button, the controller 100 may dispense value to the player at block 324 based on the outcome of the game(s) played by the player. The operation may include terminating the connection to the network 12, 26, 40 and may then return to block 302. If the player did not wish to quit as determined at block 322, the operation may return to block 308.

Video Poker

Where the gaming unit 20 is designed to facilitate play of a video poker game, the display unit 70 may comprise a video display unit. FIG. 16 is an exemplary display 350 that may be shown on the display unit 70 during performance of the video poker routine 226 shown schematically in FIG. 14. Referring to FIG. 16, the display 350 may include video images 352 of a plurality of playing cards representing the player's hand, such as five cards. To allow the player to control the play of the video poker game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Hold” button 354 disposed directly below each of the playing card images 352, a “Cash Out” button 356, a “See Pays” button 358, a “Bet One Credit” button 360, a “Bet Max Credits” button 362, and a “Deal/Draw” button 364. The display 350 may also include an area 366 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons 354, 356, 358, 360, 362, 364 may form part of the video display 350. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.

FIG. 18 is a flowchart of the video poker routine 226 shown schematically in FIG. 14. Referring to FIG. 18, at block 370, the routine may determine whether the player has requested payout information, such as by activating the “See Pays” button 358, in which case at block 372 the routine may cause one or more pay tables to be displayed on the display unit 70. At block 374, the routine may determine whether the player has made a bet, such as by pressing the “Bet One Credit” button 360, in which case at block 376 bet data corresponding to the bet made by the player may be stored in the memory of the controller 100. At block 378, the routine may determine whether the player has pressed the “Bet Max Credits” button 362, in which case at block 380 bet data corresponding to the maximum allowable bet may be stored in the memory of the controller 100.

At block 382, the routine may determine if the player desires a new hand to be dealt, which may be determined by detecting if the “Deal/Draw” button 364 was activated after a wager was made. In that case, at block 384 a video poker hand may be “dealt” by causing the display unit 70 to generate the playing card images 352. After the hand is dealt, at block 386 the routine may determine if any of the “Hold” buttons 354 have been activated by the player, in which case data regarding which of the playing card images 352 are to be “held” may be stored in the controller 100 at block 388. If the “Deal/Draw” button 364 is activated again as determined at block 390, each of the playing card images 352 that was not “held” may be caused to disappear from the video display 350 and to be replaced by a new, randomly selected, playing card image 352 at block 392.

At block 394, the routine may determine whether the poker hand represented may be made by comparing data representing the currently displayed poker hand with data representing all possible winning hands, which may be stored in the memory of the controller 100. If there is a winning hand, a payout value corresponding to the winning hand may be determined at block 396. At block 398, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the hand was a winner, the payout value determined at block 396. The cumulative value or number of credits may also be displayed in the display area 366 (FIG. 16).

Although the video poker routine 226 is described above in connection with a single poker hand of five cards, the routine 226 may be modified to allow other versions of poker to be played. For example, seven card poker may be played, or stud poker may be played. Alternatively, multiple poker hands may be simultaneously played. In that case, the game may begin by dealing a single poker-hand, and the player may be allowed to hold certain cards. After deciding which cards to hold, the held cards may be duplicated in a plurality of different poker hands, with the remaining cards for each of those poker hands being randomly determined.

Video Blackjack

Where the gaming unit 20 is designed to facilitate play of a video blackjack game, the display unit 70 may comprise a video display unit. FIG. 17 is an exemplary display 400 that may be shown on the display unit 70 during performance of the video blackjack routine 227 shown schematically in FIG. 14. Referring to FIG. 17, the display 400 may include video images 402 of a pair of playing cards representing a dealer's hand, with one of the cards shown face up and the other card being shown face down, and video images 404 of a pair of playing cards representing a player's hand, with both the cards shown face up. The “dealer” may be the gaming unit 20. To allow the player to control the play of the video blackjack game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 406, a “See Pays” button 408, a “Stay” button 410, a “Hit” button 412, a “Bet One Credit” button 414, and a “Bet Max Credits” button 416. The display 400 may also include an area 418 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons 406, 408, 410, 412, 414, 416 may form part of the video display 400. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.

FIG. 19 is a flowchart of the video blackjack routine 227 shown schematically in FIG. 14. Referring to FIG. 19, the video blackjack routine 227 may begin at block 420 where it may determine whether a bet has been made by the player. That may be determined, for example, by detecting the activation of either the “Bet One Credit” button 414 or the “Bet Max Credits” button 416. At block 422, bet data corresponding to the bet made at block 420 may be stored in the memory of the controller 100. At block 424, a dealer's hand and a player's hand may be “dealt” by making the playing card images 402, 404 appear on the display unit 70.

At block 426, the player may be allowed to be “hit,” in which case at block 428 another card will be dealt to the player's hand by making another playing card image 404 appear in the display 400. If the player is hit, block 430 may determine if the player has “bust,” or exceeded 21. If the player has not bust, blocks 426 and 428 may be performed again to allow the player to be hit again.

If the player decides not to hit, at block 432 the routine may determine whether the dealer should be hit. Whether the dealer hits may be determined in accordance with predetermined rules, such as the dealer always hit if the dealer's hand totals 15 or less. If the dealer hits, at block 434 the dealer's hand may be dealt another card by making another playing card image 402 appear in the display 400. At block 436 the routine may determine whether the dealer has bust. If the dealer has not bust, blocks 432, 434 may be performed again to allow the dealer to be hit again.

If the dealer does not hit, at block 436 the outcome of the blackjack game and a corresponding payout may be determined based on, for example, whether the player or the dealer has the higher hand that does not exceed 21. If the player has a winning hand, a payout value corresponding to the winning hand may be determined at block 440. At block 442, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the player won, the payout value determined at block 440. The cumulative value or number of credits may also be displayed in the display area 418 (FIG. 17).

Slots

Where the gaming unit 20 is designed to facilitate play of a video slots game, the display unit 70 may comprise a video display unit. FIG. 20 is an exemplary display 450 that may be shown on the display unit 70 during performance of the slots routine 228 shown schematically in FIG. 14. Referring to FIG. 20, the display 450 may include video images 452 of a plurality of slot machine reels, each of the reels having a plurality of reel symbols 454 associated therewith. Although the display 450 shows five reel images 452, each of which may have three reel symbols 454 that are visible at a time, other reel configurations could be utilized.

To allow the player to control the play of the slots game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 456, a “See Pays” button 458, a plurality of payline-selection buttons 460 each of which allows the player to select a different number of paylines prior to “spinning” the reels, a plurality of bet-selection buttons 462 each of which allows a player to specify a wager amount for each payline selected, a “Spin” button 464, and a “Max Bet” button 466 to allow a player to make the maximum wager allowable.

FIG. 22 is a flowchart of the slots routine 228 shown schematically in FIG. 20. Referring to FIG. 22, at block 470, the routine may determine whether the player has requested payout information, such as by activating the “See Pays” button 458, in which case at block 472 the routine may cause one or more pay tables to be displayed on the display unit 70. At block 474, the routine may determine whether the player has pressed one of the payline-selection buttons 460, in which case at block 476 data corresponding to the number of paylines selected by the player may be stored in the memory of the controller 100. At block 478, the routine may determine whether the player has pressed one of the bet-selection buttons 462, in which case at block 480 data corresponding to the amount bet per payline may be stored in the memory of the controller 100. At block 482, the routine may determine whether the player has pressed the “Max Bet” button 466, in which case at block 484 bet data (which may include both payline data and bet-per-payline data) corresponding to the maximum allowable bet may be stored in the memory of the controller 100.

If the “Spin” button 464 has been activated by the player as determined at block 486, at block 488 the routine may cause the slot machine reel images 452 to begin “spinning” so as to simulate the appearance of a plurality of spinning mechanical slot machine reels. At block 490, the routine may determine the positions at which the slot machine reel images will stop, or the particular symbol images 454 that will be displayed when the reel images 452 stop spinning. At block 492, the routine may stop the reel images 452 from spinning by displaying stationary reel images 452 and images of three symbols 454 for each stopped reel image 452. The virtual reels may be stopped from left to right, from the perspective of the player, or in any other manner or sequence.

The routine may provide for the possibility of a bonus game or round if certain conditions are met, such as the display in the stopped reel images 452 of a particular symbol 454. If there is such a bonus condition as determined at block 494, the routine may proceed to block 496 where a bonus round may be played. The bonus round may be a different game than slots, and many other types of bonus games could be provided. If the player wins the bonus round, or receives additional credits or points in the bonus round, a bonus value may be determined at block 498. A payout value corresponding to outcome of the slots game and/or the bonus round may be determined at block 500. At block 502, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the slot game and/or bonus round was a winner, the payout value determined at block 500.

Although the above routine has been described as a virtual slot machine routine in which slot machine reels are represented as images on the display unit 70, actual slot machine reels that are capable of being spun may be utilized instead, in which case the display unit 70 could be provided in the form of a plurality of mechanical reels that are rotatable, each of the reels having a plurality of reel images disposed thereon.

Video Keno

Where the gaming unit 20 is designed to facilitate play of a video keno game, the display unit 70 may comprise a video display unit. FIG. 21 is an exemplary display 520 that may be shown on the display unit 70 during performance of the video keno routine 229 shown schematically in FIG. 14. Referring to FIG. 21, the display 520 may include a video image 522 of a plurality of numbers that were selected by the player prior to the start of a keno game and a video image 524 of a plurality of numbers randomly selected during the keno game. The randomly selected numbers may be displayed in a grid pattern.

To allow the player to control the play of the keno game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 526, a “See Pays” button 528, a “Bet One Credit” button 530, a “Bet Max Credits” button 532, a “Select Ticket” button 534, a “Select Number” button 536, and a “Play” button 538. The display 520 may also include an area 540 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons may form part of the video display 520. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.

FIG. 23 is a flowchart of the video keno routine 229 shown schematically in FIG. 14. The keno routine 229 may be utilized in connection with a single gaming unit 20 where a single player is playing a keno game, or the keno routine 229 may be utilized in connection with multiple gaming units 20 where multiple players are playing a single keno game. In the latter case, one or more of the acts described below may be performed either by the controller 100 in each gaming unit, or by one of the network computers 22, 32 to which multiple gaming units 20 are operatively connected.

Referring to FIG. 23, at block 550, the routine may determine whether the player has requested payout information, such as by activating the “See Pays” button 528, in which case at block 552 the routine may cause one or more pay tables to be displayed on the display unit 70. At block 554, the routine may determine whether the player has made a bet, such as by having pressed the “Bet One Credit” button 530 or the “Bet Max Credits” button 532, in which case at block 556 bet data corresponding to the bet made by the player may be stored in the memory of the controller 100. After the player has made a wager, at block 558 the player may select a keno ticket, and at block 560 the ticket may be displayed on the display 520. At block 562, the player may select one or more game numbers, which may be within a range set by the casino. After being selected, the player's game numbers may be stored in the memory of the controller 100 at block 564 and may be included in the image 522 on the display 520 at block 566. After a certain amount of time, the keno game may be closed to additional players (where a number of players are playing a single keno game using multiple gambling units 20).

If play of the keno game is to begin as determined at block 568, at block 570 a game number within a range set by the casino may be randomly selected either by the controller 100 or a central computer operatively connected to the controller, such as one of the network computers 22, 32. At block 572, the randomly selected game number may be displayed on the display unit 70 and the display units 70 of other gaming units 20 (if any) which are involved in the same keno game. At block 574, the controller 100 (or the central computer noted above) may increment a count which keeps track of how many game numbers have been selected at block 570.

At block 576, the controller 100 (or one of the network computers 22, 32) may determine whether a maximum number of game numbers within the range have been randomly selected. If not, another game number may be randomly selected at block 570. If the maximum number of game numbers has been selected, at block 578 the controller 100 (or a central computer) may determine whether there are a sufficient number of matches between the game numbers selected by the player and the game numbers selected at block 570 to cause the player to win. The number of matches may depend on how many numbers the player selected and the particular keno rules being used.

If there are a sufficient number of matches, a payout may be determined at block 580 to compensate the player for winning the game. The payout may depend on the number of matches between the game numbers selected by the player and the game numbers randomly selected at block 570. At block 582, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the keno game was won, the payout value determined at block 580. The cumulative value or number of credits may also be displayed in the display area 540 (FIG. 21).

Video Bingo

Where the gaming unit 20 is designed to facilitate play of a video bingo game, the display unit 70 may comprise a video display unit. FIG. 24 is an exemplary display 600 that may be shown on the display unit 70 during performance of the video bingo routine 228 shown schematically in FIG. 14. Referring to FIG. 24, the display 600 may include one or more video images 602 of a bingo card and images of the bingo numbers selected during the game. The bingo card images 602 may have a grid pattern.

To allow the player to control the play of the bingo game, a plurality of player-selectable buttons may be displayed. The buttons may include a “Cash Out” button 604, a “See Pays” button 606, a “Bet One Credit” button 608, a “Bet Max Credits” button 610, a “Select Card” button 612, and a “Play” button 614. The display 600 may also include an area 616 in which the number of remaining credits or value is displayed. If the display unit 70 is provided with a touch-sensitive screen, the buttons may form part of the video display 600. Alternatively, one or more of those buttons may be provided as part of a control panel that is provided separately from the display unit 70.

FIG. 25 is a flowchart of the video bingo routine 228 shown schematically in FIG. 14. The bingo routine 228 may be utilized in connection with a single gaming unit 20 where a single player is playing a bingo game, or the bingo routine 228 may be utilized in connection with multiple gaming units 20 where multiple players are playing a single bingo game. In the latter case, one or more of the acts described below may be performed either by the controller 100 in each gaming unit 20 or by one of the network computers 22, 32 to which multiple gaming units 20 are operatively connected.

Referring to FIG. 25, at block 620, the routine may determine whether the player has requested payout information, such as by activating the “See Pays” button 606, in which case at block 622 the routine may cause one or more pay tables to be displayed on the display unit 70. At block 624, the routine may determine whether the player has made a bet, such as by having pressed the “Bet One Credit” button 608 or the “Bet Max Credits” button 610, in which case at block 626 bet data corresponding to the bet made by the player may be stored in the memory of the controller 100.

After the player has made a wager, at block 628 the player may select a bingo card, which may be generated randomly. The player may select more than one bingo card, and there may be a maximum number of bingo cards that a player may select. After play is to commence as determined at block 632, at block 634 a bingo number may be randomly generated by the controller 100 or a central computer such as one of the network computers 22, 32. At block 636, the bingo number may be displayed on the display unit 70 and the display units 70 of any other gaming units 20 involved in the bingo game.

At block 638, the controller 100 (or a central computer) may determine whether any player has won the bingo game. If no player has won, another bingo number may be randomly selected at block 634. If any player has bingo as determined at block 638, the routine may determine at block 640 whether the player playing that gaming unit 20 was the winner. If so, at block 642 a payout for the player may be determined. The payout may depend on the number of random numbers that were drawn before there was a winner, the total number of winners (if there was more than one player), and the amount of money that was wagered on the game. At block 644, the player's cumulative value or number of credits may be updated by subtracting the bet made by the player and adding, if the bingo game was won, the payout value determined at block 642. The cumulative value or number of credits may also be displayed in the display area 616 (FIG. 24). 

1. A casino gaming system comprising: at least one master gaming server, at least one gaming apparatus disposed in a casino, said gaming apparatus comprising: a display unit capable of generating video images, a value input device and a gaming apparatus controller comprising a processor and a memory operatively coupled to said processor, said gaming apparatus controller being programmed to receive gaming server identification data from said master gaming server, said gaming server identification data representing the identity of each gaming server of a plurality of gaming servers, said gaming apparatus controller being programmed to communicate a network message to each of said gaming servers using said gaming server identification data, said network message comprising a type identifier and data unique to said network message, said gaming apparatus controller being programmed to receive a response to said network message from one or more of said plurality of gaming servers, said gaming apparatus controller being programmed to determine data representing server information regarding each of said responding gaining servers based at least in part on said response, said gaming apparatus controller being programmed to select a gaming server from among said plurality of gaming servers according to said server information data, said gaming apparatus controller being programmed to communicate a selection message to said selected gaming server, said gaming apparatus controller being programmed to receive gaming data from said selected gaming server in response to said selection message, said gaming apparatus controller being programmed to cause a video image to be generated oil said display unit, said video image representing a game, and said gaming apparatus controller being programmed to determine a value payout associated with an outcome of said game represented by said video image; and a plurality of gaming servers interconnected with said at least one gaming apparatus and said at least one master gaming server, wherein at least one of said plurality of gaming servers is disposed in a casino, each gaming server comprising a gaming server controller comprising a processor and a memory operatively coupled to said processor; said gaming server controller being programmed to receive said network message from said gaming apparatus controller. said gaming server controller being programmed to communicate a response to said network message to said gaming apparatus controller if said network message is received, said gaming server controller being programmed to receive a selection message from said gaming apparatus controller, and said gaming server controller being programmed to communicate said gaming data to said gaming apparatus controller if said gaming server controller receives said selection message.
 2. A gaming system as defined in claim 1, wherein said gaming apparatus controller is programmed to determine one of the following server information data based at least in part on said response: a data transfer rate, responsiveness, identification or load.
 3. A gaming system as defined in claim 1 further comprising at least one network computer interconnected with said gaming apparatus, said master gaming server and said plurality of gaming servers, wherein said gaming apparatus controller is programmed to request a network identification from said network computer using data identifying said gaming apparatus, wherein said gaming apparatus controller is programmed to receive a network identification from said network computer if said gaming apparatus identification is valid, wherein said gaming server controller is programmed to determine if said network identification is valid, and wherein said gaming server controller is programmed to provide said gaming data if said network identification is valid.
 4. A gaming system as defined in claim 1, wherein said gaming apparatus controller is programmed to record a first time when each network message is communicated to each of said gaming servers, wherein said gaming apparatus is programmed to record a second time when each of said responses is received, and wherein said gaming apparatus is programmed to determine said server information data for each of said responding gaming servers based on said first time and said second time.
 5. A gaming system as defined in claim 1, wherein said gaming apparatus controller is programmed to receive server information data from said master gaming server.
 6. A gaming apparatus disposed in a casino, the gaming apparatus comprising: a display unit; a value input device; a controller operatively coupled to said display unit and said value input device, said controller comprising a processor and a memory operatively coupled to said processor, said controller being programmed to receive data representing server information regarding a plurality of casino gaming servers, said controller being programmed to organize said plurality of casino gaming servers, wherein said controller organizes said plurality of casino gaming servers according to said server information data, said controller being programmed to select a casino gaming server from among said plurality of casino gaming servers, wherein said controller makes said selection according to one of the following: said organization of casino gaming servers or said server information data, said controller being programmed to receive gaming data from said selected casino gaming server, said controller being programmed to cause said display unit to generate a game display relating to one of the following games: poker, blackjack, slots, keno or bingo, and said controller being programmed to determine a value payout associated with an outcome of said game.
 7. A gaming apparatus as defined in claim 6, wherein said display unit comprises a video display unit that is capable of generating video images.
 8. A gaming apparatus as defined in claim 7, wherein said controller is programmed to cause a video image comprising an image of at least five playing cards to be displayed if said game comprises video poker, wherein said controller is programmed to cause a video image comprising an image of a plurality of simulated slot machine reels to be displayed if said game comprises video slots, wherein said controller is programmed to cause a video image comprising an image of a plurality of playing cards to be displayed if said game comprises video blackjack, wherein said controller is programmed to cause a video image comprising an image of a plurality of keno numbers to be displayed if said game comprises video keno, and wherein said controller is programmed to cause a video image comprising an image of a bingo grid to be displayed if said game comprises video bingo.
 9. A gaming apparatus as defined in claim 6, wherein said display unit comprises at least one mechanical slot machine reel.
 10. A gaming apparatus as defined in claim 6, wherein said controller is programmed to cause said display unit to generate a display relating to one or more of said plurality of casino gaming servers, wherein said controller is programmed to allow a person to select one of said casino gaming servers from among said one or more casino gaming servers.
 11. A gaming apparatus as defined in claim 10, wherein said controller is programmed to cause said display unit to generate a display relating to said server information data for each of said one or more casino gaming servers.
 12. A gaming apparatus as defined in claim 6, wherein said controller is programmed to automatically select a casino gaming server from said plurality of casino gaming servers based on said server information data.
 13. A gaming apparatus as defined in claim 6, wherein said server information data relates to at least one of the following factors for each of said plurality of casino gaming servers: data transfer rate, responsiveness, identification, load, geographic location, network subnet data, description, available gaming data and gaming data size.
 14. A gaming apparatus as defined in claim 6, wherein said controller is programmed to discard a casino gaming server from said plurality of casino gaming servers as an option for selection based on a threshold value, said threshold value relating to at least one of the following factors: data transfer rate, responsiveness, load, geographic proximity, network subnet data, available gaming data and gaming data size.
 15. A gaming apparatus as defined in claim 6, wherein said gaming data relates to at least one of the following games: poker, blackjack, slots, keno or bingo.
 16. A gaming apparatus as defined in claim 6, wherein said gaming data relates to at least one of the following: a new game, a software update and configuration data.
 17. A gaming apparatus as defined in claim 6, wherein said controller is programmed to cause said display unit to generate said game display from said gaming data.
 18. A gaming system comprising a plurality of gaming apparatuses as defined in claim 6, said gaming apparatuses being interconnected to form a network of gaming apparatuses.
 19. A gaming system as defined in claim 18 further comprising: said plurality of casino gaming servers; and a master gaming server, wherein said controller is programmed to communicate with said master gaming server.
 20. A gaming system as defined in claim 19 further comprising a network server, wherein said controller is programmed to provide said network server with a gaming apparatus identification and data to authenticate said gaming apparatus identification, wherein said controller is programmed to receive a network identification from said network server if said network server accepts said gaming apparatus identification and said data to authenticate said gaming apparatus identification, and wherein said controller is programmed to communicate with said master gaming server using said network identification.
 21. A gaming system as defined in claim 20, wherein said controller is programmed to receive network server authentication data from said network server, wherein said controller is programmed to determine if said network server authentication data is authentic for said network server, and wherein said controller is programmed to accept said network identification if said network server authentication data is authentic for said network server.
 22. A gaming system as defined in claim 18, wherein one or more of said plurality of gaming apparatuses is a master gaming server, wherein said controller of said one or more gaming apparatuses is programmed to provide a list of said plurality of casino gaming servers to other gaming apparatuses.
 23. A gaming system as defined in claim 18, wherein one or more of said plurality of gaming apparatuses is a casino gaming server, wherein said controller of said one or more gaming apparatuses is programmed to provide gaming data to other gaming apparatuses.
 24. A gaming system as defined in claim 18, wherein said gaming apparatuses are interconnected via the Internet.
 25. A gaming apparatus disposed in a casino, the gaming apparatus comprising: a display unit; a value input device; a controller operatively coupled to said display unit and said value input device, said controller comprising a processor and a memory operatively coupled to said processor, said controller being programmed to receive data representing server information regarding a plurality of casino gaming servers, said controller being programmed to organize said plurality of casino gaming servers, wherein said controller organizes said plurality of casino gaming servers according to said server information data, said controller being programmed to select a casino gaming server from among said plurality of casino gaming servers, wherein said controller makes said selection according to one of the following: said organization of casino gaming servers or said server information data, said controller being programmed to receive gaming data from said selected casino gaming server, said controller being programmed to receive data representing a payline selection made by a player, said controller being programmed to cause a game display to be generated by said display unit, said game display comprising images of a plurality of slot machine symbols each of which is associated with a respective slot machine reel of a slots game, said controller being programmed to determine a value payout associated with an outcome of said slots game, said controller being programmed to determine said outcome of said slots game based on a configuration of said slot machine symbols.
 26. A gaming apparatus as defined in claim 25, wherein said display unit comprises a video display unit that is capable of generating video images.
 27. A gaming apparatus as defined in claim 26, wherein said controller is programmed to cause a video image comprising an image of a plurality of simulated slot machine reels to be displayed on said display unit.
 28. A gaming apparatus as defined in claim 25, wherein said display unit comprises at least one mechanical slot machine reel.
 29. A gaming apparatus as defined in claim 25, wherein said controller is programmed to receive payline data representing a number of paylines selected by the player.
 30. A gaming apparatus as defined in claim 25, wherein said controller is programmed to cause said display unit to generate a display relating to one or more of said plurality of casino gaming servers, wherein said controller is programmed to allow a person to select one of said casino gaming servers from among said one or more casino gaming servers.
 31. A gaming apparatus as defined in claim 30, wherein said controller is programmed to cause said display unit to generate a display relating to said server information data for each of said one or more gaming servers.
 32. A gaming apparatus as defined in claim 25, wherein said controller is programmed to automatically select a casino gaming server from said plurality of casino gaming servers based on said server information data.
 33. A gaming apparatus as defined in claim 25, wherein said server information data relates to at least one of the following factors for each of said plurality of casino gaming servers: data transfer rate, responsiveness, identification, load, geographic location, network subnet data, description, available gaming data and gaming data size.
 34. A gaming apparatus as defined in claim 25, wherein said gaming data relates to at least one of the following: a new slots game, a software update and configuration data.
 35. A gaming apparatus as defined in claim 25, wherein said controller is programmed to cause said display unit to generate said game display from said gaming data.
 36. A gaming system comprising a plurality of gaming apparatuses as defined in claim 25, said gaming apparatuses being interconnected to form a network of gaming apparatuses.
 37. A gaming system as defined in claim 36 further comprising: said plurality of casino gaming servers; and a master gaming server, wherein said controller is programmed to receive a list of said plurality of casino gaming servers from said master gaming server.
 38. A gaming system as defined in claim 36, wherein said gaming apparatuses are interconnected via the Internet.
 39. A gaming method for downloading gaming data from a casino gaming server to a gaming apparatus disposed in a casino, the gaming method comprising: receiving data representing server information regarding a plurality of casino gaming servers; organizing said plurality of casino gaming servers according to said server information data; selecting a casino gaming server from among said plurality of casino gaming servers according to one of the following: said organization of casino gaming servers or said server information data; receiving gaming data from said selected casino gaming server; causing a game display of one of the following games to be generated: poker, blackjack, slots, keno or bingo; and determining a value payout associated with an outcome of said game represented by said video image.
 40. A gaming method as defined in claim 39, additionally comprising: causing a display relating to one or more of said plurality of casino gaming servers to be generated; and allowing a person to select one of said casino gaming servers from among said one or more casino gaming servers.
 41. A gaming method as defined in claim 39, wherein selecting a casino gaming server comprises automatically selecting a casino gaming server from among said plurality of casino gaming servers based on said server information data.
 42. A gaming method as defined in claim 39, wherein causing a game display to be generated comprises causing a game display of one of the following games to be generated from said gaming data: poker, blackjack, slots, keno or bingo.
 43. A gaming method as defined in claim 39, wherein selecting a casino gaming server comprises selecting a casino gaming server based on at least one of the following: data transfer rate, responsiveness, identification, load, geographic location, network subnet data, description, available gaming data and gaming data size.
 44. A memory having a computer program stored therein, said computer program being capable of being used in connection with a gaming apparatus disposed in a casino, said memory comprising: a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to receive data representing server information regarding a plurality of casino gaming servers; a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to organize said plurality of casino gaming servers according to said server information data; a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to select a casino gaming server from among said plurality of casino gaming servers according to one of the following: said organization of casino gaming servers or said server information data; a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to receive gaming data from said selected casino gaming server; a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to cause a game display representing one of the following games to be generated: poker, blackjack, slots, keno or bingo; and a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to determine a value payout associated with an outcome of said one game.
 45. A memory as defined in claim 44, wherein said memory additionally comprises: a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to cause a display relating to one or more of said plurality of casino gaming servers to be generated; and a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to allow a person to select one of said casino gaming servers from among said one or more casino gaming servers.
 46. A memory as defined in claim 44, wherein said memory additionally comprises a memory portion physically configured in accordance with computer program instructions that would cause the gaming apparatus to automatically select a casino gaming server from among said plurality of casino gaming servers based on said server information data. 